package com.fanshuai.algorithms.datastructure.graph;

public interface IGraph<T> {
    /**
     * 添加边
     * @param i 源节点
     * @param j 目的节点
     * @param weight 权重
     */
    void addEdge(int i, int j, int weight);

    /**
     * 删除边
     * @param i 源节点
     * @param j 目的节点
     */
    void delEdge(int i, int j);

    /**
     * 设置节点信息  n个节点的图，节点编号为[1,n]。图默认没有节点信息，如果需要绑定节点信息，需要调用此接口
     * @param i
     * @param node
     */
    void setNodeInfo(int i, T node);

    /**
     * 获取节点信息
     * @param i
     * @return
     */
    T getNodeInfo(int i);
}
